# -*- coding:utf-8 -*-
# Este módulo se encargará de enviar y recibir notas
import urllib, sys,string

import feedparser

#def _body(buf):
	#global xmlstring
	#xmlstring = xmlstring + buf


#def _generar(nota, jurl):
        #cu = pycurl.Curl()
	#cu.setopt(pycurl.URL, jurl + nota)
	#cu.setopt(pycurl.WRITEFUNCTION, _body)
	#cu.perform()
	#cu.close()

def enviar(username, apikey, msg, silent=False):
	"""Envía una nota a jisko, los parámetros de entrada son texto plano
	username=usuario
	apikey=clave api
	msg=mensaje a enviar. Si su longitud es de mas 140 caracteres se cortará
	"""
	msg = msg.encode('ascii', 'xmlcharrefreplace')
	#jiskourl = 'http://jisko.net/api.php?username='+username+'&api='+apikey+'&from=3&'
	if len(msg) >= 140:
		msg = msg[:140]
	#_generar(msg, jiskourl)
	params = urllib.urlencode({'username': username, 'api': apikey, 'note': msg,'from':'api'})
	url = urllib.urlopen("http://jisko.net/api.php?%s" % params)
	ur = url.read()
	if not silent:
		print ur
	
def recibir(num):
	"""Recibir recibe las num primeras jiskotas
	"""
	public_notes = feedparser.parse("http://jisko.net/feed")
	#feed = urllib.urlopen("http://jisko.net/feed").read()
	#try:
	#	feed = unicode(feed, 'utf-8')
	#except Exception:
	#	feed = unicode(feed, 'latin-1')
	#public_notes = feedparser.parse(feed, foo=True)
	#print public_notes
	if num < len(public_notes.entries):
		public_notes.entries = public_notes.entries[:num]
	#if num > len(public_notes.entries):
	#	 num = len(public_notes.entries)
	listanotas = []
	for note in public_notes.entries:
		autor = note.author
		jiskota = note.content[0].value
		listanotas.append((autor, jiskota))
	return listanotas
	
if __name__=="__main__" :
	print "Por favor, ejecuta pysko.py, esto es sólo un módulo"
